Systems and methods for UV packing

ABSTRACT

Systems, devices, and methods are disclosed for UV packing. The system includes a non-transitory computer-readable medium operatively coupled to processors. The non-transitory computer-readable medium stores instructions that, when executed, cause the processors to perform a number of operations. One operation is to present a packing map using a graphical user interface including a selection tool. Another operation is to present a first set of one or more target objects using the graphical user interface. Individual ones of the first set include one or more features. One operation is to receive a first user input. Another operation is to, based on the first user input and the one or more features corresponding to the individual ones of the first set, pack the first set into a packing map.

SUMMARY

Embodiments of the present disclosure include systems, methods, devices,and apparatus capable of UV packing, including, for example, packingmaps, one or more target objects, as well as interconnected processorsand/or circuitry, to present the packing map and the one or more targetobjects and to receive user input.

In accordance with the technology described herein, a system for UVpacking is disclosed. The system includes a non-transitorycomputer-readable medium operatively coupled to processors. Thenon-transitory computer-readable medium stores instructions that, whenexecuted, cause the processors to perform a number of operations. Onesuch operation is to present a packing map using a graphical userinterface including a selection tool. Another such operation is topresent a first set of one or more target objects using the graphicaluser interface. Individual ones of the first set include one or morefeatures. Yet another operation is to receive a first user input.Another such operation is to, based on the first user input and the oneor more features corresponding to the individual ones of the first set,pack the first set into a packing map.

In embodiments, the first user input includes selecting and customizingthe one or more features for packing the first set of one or more targetobjects.

In embodiments, the first user input includes receiving a selection tooluser input to move a selection tool over a first location in the packingmap. The first user input also includes moving the selection tool in thegraphical user interface over the first location in the packing map. Thefirst user input includes receiving packing user input to pack theindividual ones of the first set at, and around, the first location. Thefirst user input also includes packing the individual ones of the firstset at, and around, the first location in the graphical user interface.

In embodiments, the one or more features include one or more of a mesh,geometry, size, material, title, texture, paint, color, surface, andmetadata.

In embodiments, when one or more features of a first target objectcorresponds to one or more features of a second target object, the firsttarget object and the second target object are packed into an adjacentlocation in the packing map.

In embodiments, the non-transitory computer-readable medium furtherstores instructions that, when executed, cause the processors to stackthe one or more target objects in the same location in the packing mapwhen the one or more target objects includes a first geometry.

In embodiments, the non-transitory computer-readable medium furtherstores instructions that, when executed, cause the processors tosimplify a geometry of an unconventional target object. Thenon-transitory computer-readable medium stores instructions that, whenexecuted, cause the processors to pack the simplified target object intothe packing map.

In embodiments, the simplified target object is the unconventionaltarget object bounded by a rectangular shape.

In embodiments, the non-transitory computer-readable medium furtherstores instructions that, when executed, cause the processors to performoperations. One operation is to present a second set of one or moretarget objects. Another operation is to receive a second user input. Oneoperation is to, based on the second user input, the one or morefeatures corresponding to individual ones of the first set of one ormore target objects and the second set of one or more target objects,and the packed first set, pack the second set of one or more targetobjects around the first set of the one or more target objects.

In accordance with additional aspects of the present disclosure, acomputer-implemented method for UV packing includes a number ofoperations. One operation includes presenting a first set of one or moretarget objects using a graphical user interface in a first space.Individual ones of the first set of one or more target objects includeone or more features. Another operation includes presenting a packingmap using the graphical user interface including a selection tool. Oneoperation includes receiving a first user input. Another operationincludes, based on the user input and the one or more featurescorresponding to the individual ones of the first set, packing the firstset of one or more target objects into a packing map.

In embodiments, the first user input includes selecting and customizingthe one or more features for packing the first set of one or more targetobjects.

In embodiments, the first user input includes receiving a selection tooluser input to move a selection tool over a first location in the packingmap. The first user input also includes moving the selection tool in thegraphical user interface over the first location in the packing map. Thefirst user input includes receiving packing user input to pack theindividual ones of the first set at, and around, the first location; andpacking the individual ones of the first set at, and around, the firstlocation in the graphical user interface.

In embodiments, the one or more features includes one or more of a mesh,geometry, size, material, title, texture, paint, color, and surface.

In embodiments, one operation further including packing a first targetobject including a first set of one or more features in a locationadjacent to a second target object including at least one of the one ormore features of the first set of one or more features.

In embodiments, an operation further including stacking two or moretarget objects of the first set of one or more target objects in thesame location in the packing map when the two or more target objectsinclude a first geometry.

In embodiments, an operation further including simplifying a geometry ofan unconventional target object. One operation also includes packing thesimplified target object into the packing map.

In embodiments, the simplified target object is the unconventionaltarget object bounded by a rectangular shape.

In embodiments, another such operation is presenting a second set of oneor more target objects. Another operation is receiving a second userinput. One such operation is, based on the second user input, the one ormore features corresponding to individual ones of the first set of oneor more target objects and the second set of one or more target objects,and the packed first set, packing the second set of one or more targetobjects around the first set of the one or more target objects.

In accordance with additional aspects of the present disclosure, asystem for UV packing. The system including a graphical user interface.the graphical user interface including a UV map. the graphical userinterface including a selection tool. The graphical user interface alsoincluding one or more objects. The system also including anon-transitory computer-readable medium operatively coupled toprocessors and storing instructions that, when executed, cause theprocessors to perform a number of operations. One such operation is topresent the one or more objects using the graphical user interface inthe UV map. Individual ones of the one or more objects include one ormore features. Another such operation is to receive selections from theone or more objects to generate a first set of one or more targetobjects. One such operation is to present a packing map using thegraphical user interface including the selection tool. Another suchoperation is to receive a first user input. One such operation is to,based on the first user input and the one or more features correspondingto the individual ones of the first set, pack the first set into the UVmap.

In embodiments, when one or more features of a first target objectcorresponds to one or more features of a second target object, the firsttarget object and the second target object are packed into an adjacentlocation in the packing map.

BRIEF DESCRIPTION OF THE DRAWINGS

Further aspects of the present disclosure will be more readilyappreciated upon review of the detailed description of the variousdisclosed embodiments, described below, when taken in conjunction withthe accompanying figures.

FIG. 1 illustrates an example environment in which embodiments of thedisclosure may be implemented.

FIG. 2 is an operational flow diagram illustrating various operationsthat may be performed in accordance with embodiments of the disclosure.

FIG. 3 illustrates an example graphical user interface with one or moretarget objects, in accordance with embodiments of the disclosure.

FIG. 4 illustrates an example graphical user interface with one or morepacked objects, in accordance with embodiments of the disclosure.

FIG. 5 illustrates an example graphical user interface with one or morepacked objects, in accordance with embodiments of the disclosure.

FIG. 6 illustrates an example graphical user interface with one or morepacked objects, in accordance with embodiments of the disclosure.

FIG. 7 illustrates an example graphical user interface with one or morepacked objects, in accordance with embodiments of the disclosure.

FIG. 8 illustrates an example graphical user interface with one or morepacked objects, in accordance with embodiments of the disclosure.

FIG. 9 illustrates an example computing component that may be used toimplement features of various embodiments of the disclosure.

The figures are described in greater detail in the description andexamples below, are provided for purposes of illustration only, andmerely depict typical or example embodiments of the disclosure. Thefigures are not intended to be exhaustive or to limit the disclosure tothe precise form disclosed. It should also be understood that thedisclosure may be practiced with modification or alteration, and thatthe disclosure may be limited only by the claims and the equivalentsthereof.

DETAILED DESCRIPTION

Digital models (including, for example three-dimensional models) may beprepared to be digitally painted and otherwise edited. Preparing thedigital models may include unwrapping the models by separating thedigital models into one or more objects, which may be, for example,two-dimensional objects; flattening the one or more objects to preventdistortion from moving from one dimension to another dimension; cuttingthe digital models, unfolding the digital models, and/or other methodsof preparation. Existing editors may prepare the digital models bypacking all of the different objects of the model into a packing mapready for editing. Some editors may pack the one or more objects basedonly on spatial efficiency without accounting for context of theindividual objects. Often, packing can be a tedious ordeal that mayrequire manual input of locations in the packing map to place theobjects. Existing tools do not include customization to help automatethe process and minimize the time spent moving the parts of the modelinto the packing map.

Embodiments of the present disclosure are directed to systems andmethods for UV packing. In various deployments described herein, agraphical user interface may include a packing map and one or moretarget objects. Each of the one or more target objects may have one ormore features. The user may interact with the graphical user interfaceto indicate where the one or more target objects should be packed in thepacking map. For example, using a selection tool, such as a cursor, theuser may indicate a location where the one or more target objects shouldstart packing the one or more target objects in the packing map and usea single or combination of keystrokes to initiate the packing of the oneor more target objects. In another example, the target objects may bespatially grouped together in the packing map based on at least onecommon feature (e.g., shape, material, color, mesh, etc.). In oneexample, additional target objects may be packed around target objectsthat have already been packed.

FIG. 1 depicts example environment 100, which may be used in connectionwith implementing embodiments of the disclosed systems, methods, anddevices. By way of example, the various below-described components ofFIG. 1 may be used for UV packing. For example, electronic device 102may include a graphical user interface. The graphical user interface mayinclude a packing map and one or more target objects, derived from amulti-dimensional model. The graphical user interface may also include aselection tool to pick at least one of the one or more target objectsand to select a location in the packing map. When packing is initiatedby the user, the at least one of the one or more target objects may bepacked at and around the location selected by the user. A target objectmay include parts of an original model, such as, for example, a handleof a virtual baseball bat, the head of a virtual gorilla, the wheels ona virtual car, etc., to be used in a game, movie, and/or other type ofcontent with virtual/digital models.

In embodiments, the packing map may be a UV map, where U and Vindividually represent the axes of the two-dimensional space in thepacking map, instead of x, y, and z coordinates because x, y, and z arereserved for the original models on which the one or more target objectsare based. The UV map may use UDIMs to designate a location in the UVmap, such that a first UDIM is 1001, the adjacent UDIM to the right is1002 and so on, and a new row may start after ten units in the Udirection. UDIM may be a form of notation for two dimensional UVcoordinates to more easily denote a given location in the UV map. Itshould be appreciated that other packing maps may be used.

In some embodiments, the one or more target objects may or may not beunwrapped, unfolded, and/or otherwise prepared for editing. When a giventarget object is not prepared for editing, which may be referred to asan unconventional target object, the geometry of the unconventionaltarget object may be simplified so that the unconventional target objectmay be packed. The geometry may be simplified by bounding edges of theunconventional target object by a shape, such as, for example, arectangle, oval, circle, triangle, and/or other shapes. Bounding may bethe process of placing the smallest possible simple shape that has beenprepared for editing, such as, for example, a rectangle, along theexternal edges of the unconventional target object and limiting theunconventional target object to the dimensions of the simple shapeprepared for editing. Instead of trying to process and pack anunconventional object that may not be prepared for editing, leading tovarious errors, a bounded unconventional target object may be packedbecause it is processed as a simple shape that has been prepared forediting (e.g., a two-dimensional rectangle placed over an unconventionaltarget object is processed as a two-dimensional rectangle). The originalshape and geometry of the unconventional target object may be preservedduring bounding within the simple shape prepared for editing. Thesimplified geometry may be packable without distortion to theunconventional target object. Existing solutions may give errors,produce a distorted UV, and/or otherwise stop the packing process fromstarting and/or continuing for unconventional target objects.

The one or more target objects may include one or more features (e.g.,mesh, geometry, size, material, texture, surface, color, title,metadata, and/or other features). The one or more target objects may bepacked according to the one or more features and user input. Inembodiments, the one or more target objects may be packed in a givenUDIM based on the one or more features and the user input. In someembodiments, the one or more features selected by the user may beprioritized and further customized.

A mesh may include one or more target objects that correspond to astructurally continuous portion of an original model. For example, theoriginal model may include a baseball bat and a ball. The ball mayinclude one or more target objects that all belong to the same mesh, theball. In some embodiments, the mesh may include user-selected componentsof the model. For example, a humanoid model may be separated into a leftfoot mesh, a left leg mesh, a left torso mesh, a left arm mesh, a lefthead mesh, and corresponding right side meshes. It should be appreciatedthat meshes may be otherwise defined.

The geometry may include the shapes of the one or more target objects(e.g., simple shapes, such as squares, rectangles, triangles, etc.;complex shapes, such as heads, bodies, cars, etc.; and/or other shapes).The size of the one or more targets may correspond to the coordinates inthe packing map or as coordinates in the original space of the model. Inembodiments, the one or more target objects and/or models with similargeometries and/or sizes may be stacked on each other in the same UDIM.As described above, similar geometries may be packed in a given UDIM.Similar geometries may be broadly defined (e.g., hexagons and pentagonsare similar, squares of all sizes are similar, all shapes with more thanfive sides are grouped together, all shapes with less than six sides aregrouped together, shapes with curved lines are grouped together, etc.)or narrowly defined (e.g., only rectangles that are 2 units long and 1unit wide are grouped together, only squares with an area of 1 unit aregrouped together, only equilateral triangles are grouped together,etc.). It will be appreciated that other definitions may be used forsimilar geometries.

The material may include what the surface of a target object is and/orappears to be when rendered. For example, an eyeball, may have differentmaterial than fur, skin, or metal. The texture may include more specificinformation on the material. Continuing the example above, dry skincompared to soft skin or shiny metal compared to dull metal. The surfacemay include anything else that will be appreciated to relate to thesurface appearance of the one or more target objects. The color mayinclude the colors to appear, the granularity of colors, how the one ormore target objects are colored, etc. As described above, similarmaterials, textures, surfaces, and/or colors may be packed in a givenUDIM. Moreover, the definition of similar may vary from a broaddefinition to a narrow definition.

The title may include user input corresponding to a name for a giventarget object. The user may decide to give the same title for multipletarget objects. Metadata may include when a given target object wasgenerated from the model, which user generated a given target object,last date the given target object was packed, and/or other informationabout the one or more target objects that would be appreciated. Asdescribed above, target objects with similar titles and/or metadata maybe packed in a given UDIM. Moreover, the definition of similar may varyfrom a broad definition to a narrow definition. As will be appreciated,more than one feature may be used and/or customized to define how theone or more target objects are packed.

The user input may include moving the selection tool into a location inthe packing map and initiating packing of the one or more targetobjects. Electronic device 102 may receive the user input and move theselection tool accordingly. The selection tool may include a cursor, anindicator, and/or other selection tool to indicate a current location,such as, for example, a given UDIM and/or a given location within agiven UDIM, for user interaction on the graphical user interface. Theuser may initiate packing the one or more target objects with akeystroke, such as a user-defined hotkey, using a keyboard or otherdevice (not shown) connected, integrated, or otherwise coupled toelectronic device 102; a dropdown menu where additional customizationsmay be included to prioritize, enable, and/or otherwise customize theone or more features, as described herein; a button in a toolbar in thegraphical user interface; and/or other methods. Electronic device 102may receive the user input and initiate packing accordingly. It shouldbe appreciated that other user input may be used to initiate packing.

When the one or more target objects are packed, the one or more targetobjects may be scaled to efficiently fill a given UDIM. Scaling mayinclude resizing a target object while preserving its aspect ratio(e.g., a 3×1 rectangle may be scaled up to a 9×3 rectangle, and viceversa). The one or more target objects may be scaled down to pack theone or more target objects with one or more similar features, asdescribed herein, in a given UDIM. A first set of one or more targetobjects with a first set of one or more features may be scaled at adifferent value than a second set of one or more target objects with asecond set of one or more features. Scaling may be determined based onuser input (e.g., the most efficient packing for the one or more targetobjects in a UDIM, preserving the aspect ratio of the one or more targetobjects, preserving an original size of the one or more target objects,scaling to the largest target object in the set of one or more targetobjects with similar features, scaling to the smallest target object inthe set of one or more target objects with similar features, scaling toa selected target object in a set of one or more target objects with oneor more similar features, etc.).

Storage may be saved and rendering may be optimized when the one or moretarget objects are packed together based on the one or more features andthe user input. Moreover, editing the one or more target objects packedtogether based on the one or more features and user input may be easierwhen the one or more target objects are spatially adjacent or inrelatively close proximity in the packing map.

As shown in FIG. 1, environment 100 may include one or more ofelectronic device 102 and server system 106. Electronic device 102 canbe coupled to server system 106 via communication media 104. As will bedescribed in detail herein, electronic device 102 and/or server system106 may exchange communications signals, including user input, one ormore target objects, the corresponding features of the one or moretarget objects, location of the selection tool, metadata, and/or otherinformation for electronic device 102 via communication media 104.

Electronic device 102 may include a variety of electronic computingdevices, such as, for example, a smartphone, tablet, laptop, wearabledevice, and similar devices. Here, a graphical user interface ofelectronic device 102 may perform such functions as accepting and/orreceiving user input and displaying content. The graphical userinterface may be provided by various operating systems known in the art,such as, for example, iOS, Android, Windows Mobile, Windows, Mac OS,Chrome OS, Linux, Unix, a gaming platform OS (e.g., Xbox, PlayStation,Wii), and/or other operating systems.

In various embodiments, communication media 104 may be based on one ormore wireless communication protocols such as Bluetooth®, ZigBee, 802.11protocols, Infrared (IR), Radio Frequency (RF), 2G, 3G, 4G, 5G, and/orwired protocols and media. Communication media 104 may be implemented asa single medium in some cases.

As mentioned, electronic device 102 may take a variety of forms, such asa desktop or laptop computer, a smartphone, a tablet, a smartwatch orother wearable electronic device, a television or other audio or visualentertainment device or system, a camera (including still shot or video)or the like. Electronic device 102 may communicate with other devicesand/or with one another over communication media 104 with or without theuse of server system 106. In various embodiments, electronic device 102and/or server system 106 may be used to perform various processesdescribed herein and/or may be used to execute various operationsdescribed herein with regard to one or more disclosed systems andmethods. Upon studying the present disclosure, it will be appreciatedthat environment 100 may include multiple electronic devices 102,communication media 104, server systems 106, servers 108, processors112, and/or storage 110.

As mentioned, communication media 104 may be used to connect orcommunicatively couple electronic device 102 and/or server system 106 toone another or to a network, and communication media 104 may beimplemented in a variety of forms. For example, communication media 104may include an Internet connection, such as a local area network (LAN),a wide area network (WAN), a fiber optic network, internet over powerlines, a hard-wired connection (e.g., a bus), and the like, or any otherkind of network connection. Communication media 104 may be implementedusing any combination of routers, cables, modems, switches, fiberoptics, wires, radio (e.g., microwave/RF links), and the like. Further,communication media 104 may be implemented using various wirelessstandards, such as Bluetooth, Wi-Fi, 3GPP standards (e.g., 2GGSM/GPRS/EDGE, 3G UMTS/CDMA2000, 4G LTE/LTE-U/LTE-A, 5G). Upon readingthe present disclosure, it will be appreciated that there are other waysto implement communication media 104 for communications purposes.

Likewise, though not shown, it will be appreciated that a similarcommunication medium may be used to connect or communicatively coupleserver 108, processors 112, and/or storage 110 to one another, inaddition to other elements of environment 100. In example embodiments,communication media 104 may be, or include, a wired or wireless widearea network (e.g., cellular, fiber, and/or circuit-switched connection)for electronic device 102 and/or server system 106, which may berelatively geographically disparate; and in some cases, aspects ofcommunication media 104 may involve a wired or wireless local areanetwork (e.g., Wi-Fi, Bluetooth, unlicensed wireless connection, USB,HDMI, and/or standard AV), which may be used to communicatively coupleaspects of environment 100 that may be relatively close, geographically.In some embodiments, server system 106 may be remote from electronicdevice 102.

Server system 106 may provide, receive, collect, or monitor informationfrom electronic device 102, such as, for example, user input, one ormore target objects, the corresponding features of the one or moretarget objects, location of the selection tool, metadata, and the like.Server system 106 may be configured to receive or send such informationvia communication media 104. This information may be stored in storage110 and may be processed using processors 112. For example, processors112 may include an analytics engine capable of performing analytics oninformation that server system 106 has collected, received, or otherwiseinteracted with, from electronic device 102. In embodiments, server 108,storage 110, and processors 112 may be implemented as a distributedcomputing network or as a relational database or the like.

Server 108 may include, for example, an Internet server, a router, adesktop or laptop computer, a smartphone, a tablet, a processor, acomponent, or the like, and may be implemented in various forms,including, for example, an integrated circuit or collection thereof, aprinted circuit board or collection thereof, or in a discretehousing/package/rack or multiple of the same.

In embodiments, server 108 directs communications for electronic device102 over communication media 104. For example, server 108 may processand exchange messages for electronic device 102 that correspond to userinput, one or more target objects, the corresponding features of the oneor more target objects, location of the selection tool, metadata, and/orother information. Server 108 may update information stored onelectronic device 102, for example, by delivering user input, one ormore target objects, the corresponding features of the one or moretarget objects, location of the selection tool, metadata, and/or otherinformation thereto. Server 108 may send/receive information to/fromelectronic device 102 in real time or sporadically. Further, server 108may implement cloud computing capabilities for electronic device 102.

FIG. 2 illustrates a flow diagram depicting various operations of method200, and accompanying embodiments for UV packing, in accordance withaspects of the present disclosure. The operations of the various methodsdescribed herein are not necessarily limited to the order described orshown in the figures, and it will be appreciated, upon studying thepresent disclosure, variations of the order of the operations describedherein that are within the spirit and scope of the disclosure.

The operations and sub-operations of method 200 may be carried out, insome cases, by one or more of the components, elements, devices, andcircuitry of environments 100, device 102, communication media 104,server system 106, server 108, processor 112, and/or computing component900, described herein and referenced with respect to at least FIGS. 1and 9, as well as sub-components, elements, devices, and circuitrydepicted therein and/or described with respect thereto. In suchinstances, the description of methods 200 may refer to a correspondingcomponent, element, etc., but regardless of whether an explicitreference is made, it will be appreciated, upon studying the presentdisclosure, when the corresponding component, element, etc. may be used.Further, it will be appreciated that such references do not necessarilylimit the described methods to the particular component, element, etc.referred to. Thus, it will be appreciated that aspects and featuresdescribed above in connection with (sub-)components, elements, devices,circuitry, etc., including variations thereof, may be applied to thevarious operations described in connection with methods 200 withoutdeparting from the scope of the present disclosure.

At operation 202, method 200 includes presenting or displaying a packingmap. The packing map may be presented on a graphical user interface ofan electronic device, as described herein. The packing map may be a UVmap. The graphical user interface may include a selection tool, such asa cursor, described in greater detail above.

At operation 204, method 200 includes presenting a first set of one ormore target objects. For example, as described above, a target objectmay be a portion of a larger original model (e.g., half of a virtualbaseball, the handle of a baseball bat, the front torso of a virtualgorilla, or the different parts of a virtual car to be included incontent, such as a motion picture, animated programming, or game. Thefirst set of one or more target objects may be presented on thegraphical user interface. The first set of one or more target objectsmay be all of the objects or a user-selected subset of all of theobjects. Individual ones of the one or more target objects may includeone or more features, as described above. In embodiments, one or moreobjects may be presented, and a user may select a first set of one ormore target objects to be packed. The electronic device may receive theuser selections and select the first set of one or more target objectsto be packed.

At operation 206, method 200 includes receiving a first user input. Thefirst user input may include a user moving the selection tool to a givenlocation in the packing map and initiating packing of the first set ofthe one or more target objects. Initiating packing may include variousmechanisms, as described above. In embodiments, the first user input mayinclude customizing, selecting, and/or prioritizing the one or morefeatures to inform the packing.

At operation 208, method 200 includes packing the first set of one ormore target objects. Packing the first set of one or more target objectsmay be based on the user input and the one or more features of the oneor more target objects, as described in greater detail above. Asdescribed above, unconventional target objects may also be packed afterthe geometry of the unconventional target object is simplified.

As will be appreciated, method 200 may be repeated for additional setsof one or more target objects. In embodiments, the additional targetobjects may be packed around one or more packed objects, which mayinclude utilizing empty spaces in packed UDIMs or packing the additionalsets of one or more target objects into additional UDIMs.

FIG. 3 illustrates an example graphical user interface with one or moreobjects, in accordance with embodiments of the disclosure. Asillustrated, target objects are located in window 300 of a graphicaluser interface. Window 300 may include model 301 with target objects302, 304, 306, and 308; model 309 with target objects 310 and 312; andunconventional target object 314. Models 301 and 309 may be compilationsof simple shapes, but it will be appreciated that complex models, asdescribed above, may be used with the technology described herein.Models 301 and 309 may be two-dimensional and unconventional targetobject 314 may not be prepared for editing (e.g., the unconventionaltarget object has not been properly cut, unfolded, flattened, etc.).Cutting a target object may include separating out parts of originalmodel into paintable pieces (e.g., separating out a digital shirt into afront half, a back half, and two sleeves). Unfolding a target object mayinclude transforming a three-dimensional original model into atwo-dimensional representation of the original model (e.g., making athree-dimensional globe into a two-dimensional map and, in someembodiments, stretching and distorting the model such that when thetwo-dimensional map is re-applied to the three-dimensional globe, nodistortions appear). Flattening a target object may be making atwo-dimensional representation of a three-dimensional object based on agiven perspective (e.g., based on an aerial perspective of a sphere,flattening the sphere into a circle). Models 301 and 309 may be preparedfor editing, and although models 301 and 309 appear to be unitaryobjects, they are separated into their corresponding shapes and appearunitary for example purposes. Unconventional target object 314 may notbe prepared for editing (e.g., an unconventional target object), asdescribed above. As will be appreciated three-dimensional models may bepresented in window 300 that are prepared for editing (e.g., cut,unfolded, flattened, etc.).

Packing map 320 in the graphical user interface may include selectiontool 322 in the bottom left corner in UDIM 1001. Packing map 320 may bea portion of the entire packing map, which may be 10 units across, asdescribed above. In embodiments, window 300 and window 320 may be thesame window.

FIG. 4 illustrates an example graphical user interface with one or morepacked objects, in accordance with embodiments of the disclosure. Asdescribed above, the graphical user interface may include models 301 and309 and unconventional target object 314. As illustrated, FIG. 4 maydepict preparing and packing unconventional target objects. Model 309and unconventional target object 314 may be selected by a user forpacking. Selection tool 322 may be in the bottom left corner of UDIM1001. Model 309 may be a mesh, as described above. Model 309 andunconventional target object 314 may be packed according to acorresponding mesh.

Meshes may be determined based on metadata generated when the originalmodel was created (e.g., a first set of one or more target objectscorrespond to a leg of the original model, a second set of one or moretarget objects correspond to a head of the original model, a third setof one or more target objects correspond to a torso of the originalmodel, etc.) or metadata input by the user (e.g., labels, author, timestamps, etc.). For example, a user may want the leg pieces of anoriginal model of a gorilla to be packed adjacent to each other bytyping in “leg” into a packing map user interface. Accordingly, the oneor more target objects labeled “leg” are placed in UDIM 1001. A targetobject may have multiple pieces of metadata. For example, continuing theexample above, the one or more target objects with “leg” metadata mayalso have a metadata label, “George.” Accordingly, when a user inputs“George” as a feature used to pack the one or more target objects, theone or more target objects, such as, for example, the “legs,” the“arms,” the “torso,” and the “head” of “George,” may be packed adjacentto each other, and in some embodiments, in the same UDIM.

Accordingly, shapes 310 and 312 of model 309 are packed in UDIM 1001 andunconventional target object 314 is packed in UDIM 1002. Box 402represents simplified unconventional target object 314. The originalunconventional target object 314 may have been bounded by box 402 beforepacking unconventional target object 314, as described above. As aresult, unconventional target object 314 may be packable after thesimplification. As will be appreciated, other shapes may be used tobound unconventional target objects, as described above. A user may beable to easily notice unconventional target object 314 and go back andprepare unconventional target object 314 at a later time, instead ofhaving to find the error and correct it on the fly before packing theremaining target objects or having other issues, as described above.

FIG. 5 illustrates an example graphical user interface with one or morepacked objects, in accordance with embodiments of the disclosure. Asdescribed above, the graphical user interface may include models 301 and309 and unconventional target object 314. As illustrated, FIG. 5 maydepict packing models according to user input selecting one or morefeatures, such as geometry. Models 301 and 309 may be selected by theuser for packing. The user may have provided user input selecting one ormore features to pack models 301 and 309. The selected feature may begeometry. Accordingly, rectangles may be packed in UDIM 1001, pentagonsand hexagons may be packed in UDIM 1002, circles may be packed in UDIM1003, and triangles may be packed in UDIM 1004. As described above, thedefinition of geometry may be broad or narrow. As illustrated, thegeometry may include pentagons and hexagons in the same UDIM, as well asrectangles of different size ratios. In other examples, all rectanglesmay be placed in one UDIM, all shapes with five or more sides may be inanother UDIM, and all other shapes may be in a third UDIM.

FIG. 6 illustrates an example graphical user interface with one or morepacked objects, in accordance with embodiments of the disclosure. Asdescribed above, the graphical user interface may include models 301 and309 and unconventional target object 314. In addition, FIG. 6 mayinclude model 601 with target objects 602, 604, and 606 that may havebeen added after models 301 and 309 were packed. As illustrated, FIG. 6may depict user input indicating that additional target objects are tobe packed around packed target objects. Model 601 may be selected by theuser for packing. As illustrated, geometry may be the selected featureto pack models 301, 309, and 601.

Accordingly, with the additional user input to pack around packed targetobjects, target object 608 may be packed in UDIM 1001, target object 606may be packed in UDIM 1002, and target object 604 may be packed withUDIM 1004. Target object 608 may be packed in UDIM 1001 because targetobject 608 is a four-sided figure. Target object 606 may be packed intoUDIM 1002 because target object 606 could not fit in UDIM 1001, becausethe parallelogram shape is closer to pentagons and hexagons (e.g.,rectangles and squares may be packed together, based on user input, andother shapes with multiple sides, such as parallelograms, diamonds,hexagons, dodecahedrons, etc. may be packed in at least one othergroup), and/or other reasons. In embodiments, the packed shapes in UDIM1001 may be rescaled to fit target objects 606 and 608. Target object604 may be packed in UDIM 1004 with the target object 302 because targetobject 604 is similar to a triangle.

For example, trained shape recognition algorithms may be used toidentify shapes that resemble a user selected shape (e.g., square,triangle, circle, etc.). In one embodiment, for one or more additionaltarget objects that are packed around one or more already packed targetobjects, the one or more additional target objects may be comparedagainst the one or more already packed target objects. For example,target object 604 may be scaled to try and match one of the alreadypacked target objects in UDIM 1001, 1002, 1003, and 1004. Matching maybe based on scaling the one or more additional target objects to fit inone of the one or more already packed target objects. A given additionaltarget object may be matched and packed in the same UDIM as a givenalready packed target object when the given additional target objectoccupies the most space as a percentage of the given already packedtarget object compared to the other one or more already packed targetobjects. In other words, target object 604 may occupy about 20% of atarget object in UDIM 1001 when scaled to fit inside one of them, about40% when scaled to fit within a target object in UDIM 1002 and 1003, andabout 60% when scaled to fit within a target object in UDIM 1004.Accordingly, target object 604 is placed in UDIM 1004 because itoccupies the most space, compared to the other already packed targetobjects, when scaled to fit within the already packed target object inUDIM 1004.

In embodiments, the UV packer may prioritize sides of a target object,based on user input, over the shape of a target object (e.g., targetobject could be placed in UDIM 1002 in FIG. 6 because it has six sides).The number of sides of a target object may be one piece of metadataassociated with a target object. For example, when target object 604 wasprepared for editing, metadata may have been generated by a user thattarget object 604 has six sides. In some embodiments, the number ofsides of a target object may be detected using machine learningalgorithms related to shape and image recognition. In embodiments, userinput may be provided to pack additional target objects into separateUDIMs.

FIG. 7 illustrates an example graphical user interface with one or morepacked objects, in accordance with embodiments of the disclosure. Asdescribed above, the graphical user interface may include models 301 and309 and unconventional target object 314. As illustrated, FIG. 7 maydepict user input indicating to stack target objects with similargeometries. Models 301 and 309 may be selected by the user for packing.The user may have provided user input selecting one or more features topack models 301 and 309. The selected feature may be geometry, asdescribed above. Accordingly, rectangles may be stacked in UDIM 1001,pentagons and hexagons may be packed in UDIM 1002, and circles andtriangles may be packed in UDIM 1003. Target object 312 is stacked ontop of target object 308 in UDIM 1001. In embodiments, the originalratio of the target object may be preserved, while in other embodiments,the target objects with similar geometries may be altered to have thesame geometry and size. As described above, the definition of similargeometry may be broad or narrow. As illustrated, the definition ofgeometry may include rectangles in UDIM 1001, pentagons and hexagons inUDIM 1002, and all other shapes in UDIM 1003.

FIG. 8 illustrates an example graphical user interface with one or morepacked objects, in accordance with embodiments of the disclosure. Asdescribed above, the graphical user interface may include models 301 and309 and unconventional target object 314. As illustrated, FIG. 8 maydepict packing models according to user input selecting one or morefeatures, such as material. Models 301 and 309 may be selected by theuser for packing. The user may have provided user input selecting one ormore features to pack models 301 and 309. The selected feature may bethe material for a given target object. Accordingly, target objectshaving a first material may be packed in UDIM 1001, target objectshaving a second material may be packed in UDIM 1002, and target objectshaving a third material may be packed in UDIM 1003. As described above,the definition of material may be broad or narrow. For example, targetobjects in UDIM 1001 may be metallic, target objects in UDIM 1002 may beleather, and target objects in UDIM 1003 may be plastic.

It should be appreciated that the above figures are merely exemplary,and the technology described herein may more efficiently pack the one ormore target objects into the packing map.

The functionality described in the present disclosure may be utilized toimprove the workflow for painting digital models. Instead of locatingand organizing all of the pieces of one portion of a model, the presentdisclosure is able to organize and pack the target objects according toa user's input. The user may receive a model that has been prepared forediting. If the user wants all meshes, geometries, labeled items, and/orother features together, the user may use one or more keystrokes,buttons, and/or menus to pack the target objects adjacent to each other,if not in the same UDIM. Then the painter may easily paint similartarget objects together and improve the workflow of receiving unpainted,unpacked models and generating ready-to-use pieces in content. Forexample, a digital painter may receive an unpainted, unpacked model of acar that is ready for painting. The digital painter may select userinput to place all exterior pieces of the car together, all seat-relatedpieces of the car together, all the tire pieces together, etc. Thepainter may be able to paint all exterior pieces at the same time, allseat-related pieces at the same time, the tire pieces together, etc.,thereby saving time on organization of the pieces. The painter'sworkflow is improved, and the painter is able to spend more timepainting and creating textures. The painter may then send these paintedobjects as ready-to-go models to be used in various content (e.g., videogames, movie, tv shows, digital experiences, ads, etc.),

FIG. 9 illustrates example computing component 900, which may in someinstances include a processor/controller resident on a computer system(e.g., server system 106 and/or electronic device 102). Computingcomponent 900 may be used to implement various features and/orfunctionality of embodiments of the systems, devices, and methodsdisclosed herein. With regard to the above-described embodiments setforth herein in the context of systems, devices, and methods describedwith reference to FIGS. 1 through 8, including embodiments involvingdevice 102 and/or server system 106, it may be appreciated additionalvariations and details regarding the functionality of these embodimentsthat may be carried out by computing component 900. In this connection,it will also be appreciated upon studying the present disclosure thatfeatures and aspects of the various embodiments (e.g., systems)described herein may be implemented with respect to other embodiments(e.g., methods) described herein without departing from the spirit ofthe disclosure.

As used herein, the term component may describe a given unit offunctionality that may be performed in accordance with one or moreembodiments of the present application. As used herein, a component maybe implemented utilizing any form of hardware, software, or acombination thereof. For example, one or more processors, controllers,ASICs, PLAs, PALs, CPLDs, FPGAs, logical components, software routines,or other mechanisms may be implemented to make up a component. Inimplementation, the various components described herein may beimplemented as discrete components or the functions and featuresdescribed may be shared in part or in total among one or morecomponents. In other words, it should be appreciated that after readingthis description, the various features and functionality describedherein may be implemented in any given application and may beimplemented in one or more separate or shared components in variouscombinations and permutations. Even though various features or elementsof functionality may be individually described or claimed as separatecomponents, it will be appreciated that upon studying the presentdisclosure that these features and functionality may be shared among oneor more common software and hardware elements, and such descriptionshall not require or imply that separate hardware or software componentsare used to implement such features or functionality.

Where components of the application are implemented in whole or in partusing software, in embodiments, these software elements may beimplemented to operate with a computing or processing component capableof carrying out the functionality described with respect thereto. Onesuch example computing component is shown in FIG. 9. Various embodimentsare described in terms of example computing component 900. After readingthis description, it will be appreciated how to implement exampleconfigurations described herein using other computing components orarchitectures.

Referring now to FIG. 9, computing component 900 may represent, forexample, computing or processing capabilities found within mainframes,supercomputers, workstations or servers; desktop, laptop, notebook, ortablet computers; hand-held computing devices (tablets, PDA's,smartphones, cell phones, palmtops, etc.); or the like, depending on theapplication and/or environment for which computing component 900 isspecifically purposed.

Computing component 900 may include, for example, one or moreprocessors, controllers, control components, or other processingdevices, such as a processor 910, and such as may be included incircuitry 905. Processor 910 may be implemented using a special-purposeprocessing engine such as, for example, a microprocessor, controller, orother control logic. In the illustrated example, processor 910 isconnected to bus 955 by way of circuitry 905, although any communicationmedium may be used to facilitate interaction with other components ofcomputing component 900 or to communicate externally.

Computing component 900 may also include one or more memory components,simply referred to herein as main memory 915. For example, random accessmemory (RAM) or other dynamic memory may be used for storing informationand instructions to be executed by processor 910 or circuitry 905. Mainmemory 915 may also be used for storing temporary variables or otherintermediate information during execution of instructions to be executedby processor 910 or circuitry 905. Computing component 900 may likewiseinclude a read only memory (ROM) or other static storage device coupledto bus 955 for storing static information and instructions for processor910 or circuitry 905.

Computing component 900 may also include one or more various forms ofinformation storage devices 920, which may include, for example, mediadrive 930 and storage unit interface 935. Media drive 930 may include adrive or other mechanism to support fixed or removable storage media925. For example, a hard disk drive, a floppy disk drive, a magnetictape drive, an optical disk drive, a CD or DVD drive (R or RW), or otherremovable or fixed media drive may be provided. Accordingly, removablestorage media 925 may include, for example, a hard disk, a floppy disk,magnetic tape, cartridge, optical disk, a CD or DVD, or other fixed orremovable medium that is read by, written to, or accessed by media drive930. As these examples illustrate, removable storage media 925 mayinclude a computer usable storage medium having stored therein computersoftware or data.

In alternative embodiments, information storage devices 920 may includeother similar instrumentalities for allowing computer programs or otherinstructions or data to be loaded into computing component 900. Suchinstrumentalities may include, for example, fixed or removable storageunit 940 and storage unit interface 935. Examples of such removablestorage units 940 and storage unit interfaces 935 may include a programcartridge and cartridge interface, a removable memory (for example, aflash memory or other removable memory component) and memory slot, aPCMCIA slot and card, and other fixed or removable storage units 940 andstorage unit interfaces 935 that allow software and data to betransferred from removable storage unit 940 to computing component 900.

Computing component 900 may also include a communications interface 950.Communications interface 950 may be used to allow software and data tobe transferred between computing component 900 and external devices.Examples of communications interface 950 include a modem or softmodem, anetwork interface (such as an Ethernet, network interface card, WiMedia,IEEE 902.XX, or other interface), a communications port (such as forexample, a USB port, IR port, RS232 port Bluetooth® interface, or otherport), or other communications interface. Software and data transferredvia communications interface 950 may typically be carried on signals,which may be electronic, electromagnetic (which includes optical) orother signals capable of being exchanged by a given communicationsinterface 950. These signals may be provided to/from communicationsinterface 950 via channel 945. Channel 945 may carry signals and may beimplemented using a wired or wireless communication medium. Somenon-limiting examples of channel 945 include a phone line, a cellular orother radio link, an RF link, an optical link, a network interface, alocal or wide area network, and other wired or wireless communicationschannels.

In this document, the terms “computer program medium” and “computerusable medium” are used to generally refer to transitory ornon-transitory media such as, for example, main memory 915, storage unitinterface 935, removable storage media 925, and channel 945. These andother various forms of computer program media or computer usable mediamay be involved in carrying one or more sequences of one or moreinstructions to a processing device for execution. Such instructionsembodied on the medium, are generally referred to as “computer programcode” or a “computer program product” (which may be grouped in the formof computer programs or other groupings). When executed, suchinstructions may enable the computing component 900 or a processor toperform features or functions of the present application as discussedherein.

Various embodiments have been described with reference to specificexample features thereof. It will, however, be evident that variousmodifications and changes may be made thereto without departing from thebroader spirit and scope of the various embodiments as set forth in theappended claims. The specification and figures are, accordingly, to beregarded in an illustrative rather than a restrictive sense.

Although described above in terms of various example embodiments andimplementations, it should be understood that the various features,aspects, and functionality described in one or more of the individualembodiments are not limited in their applicability to the particularembodiment with which they are described, but instead may be applied,alone or in various combinations, to one or more of the otherembodiments of the present application, whether or not such embodimentsare described and whether or not such features are presented as being apart of a described embodiment. Thus, the breadth and scope of thepresent application should not be limited by any of the above-describedexample embodiments.

Terms and phrases used in the present application, and variationsthereof, unless otherwise expressly stated, should be construed as openended as opposed to limiting. As examples of the foregoing: the term“including” should be read as meaning “including, without limitation,”or the like; the term “example” is used to provide illustrativeinstances of the item in discussion, not an exhaustive or limiting listthereof; the terms “a” or “an” should be read as meaning “at least one,”“one or more,” or the like; and adjectives such as “standard,” “known,”and terms of similar meaning should not be construed as limiting theitem described to a given time period or to an item available as of agiven time, but instead should be read to encompass standardtechnologies that may be available or known now or at any time in thefuture. Likewise, where this document refers to technologies that wouldbe appreciated to one of ordinary skill in the art, such technologiesencompass that which would be appreciated by the skilled artisan now orat any time in the future.

The presence of broadening words and phrases such as “one or more,” “atleast,” “but not limited to,” or other like phrases in some instancesshall not be read to mean that the narrower case is intended or requiredin instances where such broadening phrases may be absent. The use of theterm “component” does not imply that the components or functionalitydescribed or claimed as part of the component are all configured in acommon package. Indeed, any or all of the various components of acomponent, whether control logic or other components, may be combined ina single package or separately maintained and may further be distributedin multiple groupings or packages or across multiple locations.

Additionally, the various embodiments set forth herein are described interms of example block diagrams, flow charts, and other illustrations.As will be appreciated after reading this document, the illustratedembodiments and their various alternatives may be implemented withoutconfinement to the illustrated examples. For example, block diagrams andtheir accompanying description should not be construed as mandating aparticular architecture or configuration.

What is claimed is:
 1. A system, comprising: a processor; and anon-transitory computer-readable medium operatively coupled to theprocessor and storing instructions that, when executed, cause theprocessor to perform operations comprising: presenting a UV map using agraphical user interface comprising a selection tool; presenting a firstset of multiple target objects using the graphical user interface, thetarget objects comprising multiple features; presenting a representationof the features; receiving a first user input selecting a first featureof the features in the representation; and after receiving the firstuser input selecting the first feature, packing two or more targetobjects of the first set having the same first feature at or adjacent toa first location of the UV map.
 2. The system of claim 1, wherein thefirst user input comprises selecting and customizing the first featurefor packing the first set of target objects.
 3. The system of claim 1,wherein the operations further comprise: receiving a selection tool userinput to move the selection tool over the first location in the UV map;in response to receiving the selection tool user input, moving theselection tool in the graphical user interface over the first locationin the UV map; and receiving packing user input to pack the targetobjects of the first set having the same first feature; and whereinpacking the two or more target objects, comprises: in response toreceiving the packing user input, packing the two or more target objectsof the first set having the same first feature at or adjacent to thefirst location of the UV map.
 4. The system of claim 1, wherein thefeatures comprise a mesh, geometry, size, material, title, texture,paint, color, surface, or metadata.
 5. The system of claim 1, whereinthe first feature is a geometry, wherein packing the two or more targetobjects comprises: stacking the two or more target objects in the firstlocation in the UV map.
 6. The system of claim 1, wherein the operationsfurther comprise: simplifying a geometry of an unconventional targetobject; and packing the simplified target object into the UV map.
 7. Thesystem of claim 6, wherein the simplified target object is theunconventional target object bounded by a rectangular shape.
 8. Thesystem of claim 1, wherein the operations further comprise: presenting asecond set of one or more target objects; receiving a second user input;and based on the second user input, the features corresponding to thefirst set of target objects, and the second set of target objects, andthe packed first set, pack the second set of target objects around thefirst set of target objects.
 9. A computer-implemented methodcomprising: presenting a UV map using a graphical user interfacecomprising a selection tool; presenting a first set of multiple targetobjects using the graphical user interface, the target objectscomprising multiple features; presenting a representation of thefeatures; receiving a first user input selecting a first feature of thefeatures in the representation; and after receiving the first user inputselecting the first feature, packing two or more target objects of thefirst set having the same first feature at or adjacent to a firstlocation of the UV map.
 10. The method of claim 9, wherein the firstuser input comprises selecting and customizing the first feature forpacking the first set of target objects.
 11. The method of claim 9,wherein the operations further comprise: receiving a selection tool userinput to move the selection tool over the first location in the UV map;in response to receiving the selection tool user input, moving theselection tool in the graphical user interface over the first locationin the UV map; and receiving packing user input to pack the targetobjects of the first set having the same first feature; and whereinpacking the two or more target objects, comprises: in response toreceiving the packing user input, packing the two or more target objectsof the first set having the same first feature at or adjacent to thefirst location of the UV map.
 12. The method of claim 9, wherein thefeatures comprise a mesh, geometry, size, material, title, texture,paint, color, or surface.
 13. The method of claim 9, wherein the firstfeature is a geometry, wherein packing the two or more target objectscomprises: stacking the two or more target objects in the first locationin the UV map.
 14. The method of claim 9, further comprising:simplifying a geometry of an unconventional target object; and packingthe simplified target object into the UV map.
 15. The method of claim14, wherein the simplified target object is the unconventional targetobject bounded by a rectangular shape.
 16. The method of claim 9,further comprising: presenting a second set of target objects; receivinga second user input; and based on the second user input, the featurescorresponding to first set of target objects and the second set of oneor more target objects, and the packed first set, packing the second setof one or more target objects around the first set of target objects.17. A non-transitory computer-readable medium operatively coupled to theprocessor and storing instructions that, when executed, cause theprocessor to perform operations comprising: presenting a UV map using agraphical user interface comprising a selection tool; presenting a firstset of multiple target objects using the graphical user interface, thetarget objects comprising multiple features; presenting a representationof the features; receiving a first user input selecting a first featureof the features in the representation; and after receiving the firstuser input selecting the first feature, packing two or more targetobjects of the first set having the same first feature at or adjacent toa first location of the UV map.